﻿using DAL;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace BEL
{
    public class Comentario
    {
        #region atributos
        private Comercio _comercio;
        private int _clienteid;           
        private String _valComentario;
        private int _comentarioid;
        #endregion

        #region properties
        public int ComentarioId
        {
            get { return _comentarioid; }
            set { _comentarioid = value; }
        }

        public int Clienteid
        {
            get { return _clienteid; }
            set { _clienteid = value; }
        }    

        public Comercio Comercio
        {
            get { return _comercio; }
            set { _comercio = value; }
        }

        public String ValComentario
        {
            get { return _valComentario; }
            set { _valComentario = value; }
        }       
        #endregion

        #region constructores

        public Comentario(int comentarioid, Comercio comercio,int cliente,String valComentario)
        {
            _comentarioid = comentarioid;
            _comercio = comercio;
            _clienteid = cliente;           
            _valComentario = valComentario;   

        }

        public Comentario(Comercio comercio, int cliente, String valComentario)
        {
            _comercio = comercio;
            _clienteid = cliente;            
            _valComentario = valComentario;
        }

        public Comentario()
        {
            
        }

        #endregion

        #region funciones

        public static List<Comentario> BuscarComentarios(int ComercioId){
            List<Comentario> retorno = new List<Comentario>();
            DALComentario dal = new DALComentario();
            SqlDataReader dr = dal.buscarComentarios(ComercioId);

            while (dr.Read()) {
                Comentario v = new Comentario();
                v.Clienteid = Convert.ToInt32(dr["CliId"]);
                v.Comercio = Comercio.BuscarComercioPorId(Convert.ToInt32(dr["ComId"]));                
                v.ValComentario = Convert.ToString(dr["ValComentario"]);
                retorno.Add(v);
            }
            return retorno;  
        
        }

        public List<Comentario> BuscarValoracionComentariosPorComercio(int comercioId)
        {
            return null;
        }

        public List<Comentario> BuscarValoracionComentariosPorCliente(int clienteId)
        {
            return null;
        }

        public List<Comentario> BuscarValoracionComentariosPorComercioYCliente(int comercioId, int clienteId)
        {
            return null;
        }

        public static Boolean AltaComentario(Comercio comercio,Cliente cliente, string comentario){
            DALComentario dalcomentario = new DALComentario();
            List<SqlParameter> parametros = new List<SqlParameter>();
            parametros.Add(new SqlParameter("@ValComentario", comentario));
            parametros.Add(new SqlParameter("@CliId", cliente.ClienteId));
            parametros.Add(new SqlParameter("@ComId", comercio.ComercioId));
            Boolean retorno = dalcomentario.AltaComentario(parametros);
            return retorno;

        } 

        public Boolean ModificarValoracionComentario(Comercio comercio,Cliente cliente,int calificacion,String comentario){ 
            return false;
        }

        #endregion
    }
}
